-- Sidewarp in only
x=96
y=40
ex=0
ey=40
ed=1
mapx=0
mapy=0
-- wha--t are your warp coornats?-
warps={
-- door 32,6 -- where does t warp to?
-- let me show you -- 0, 34?no it is 1,40
{ tilex=32, tiley=6,
gotox=0, gotoy=34 },
-- { tilex=9, tiley=69 },
-- { tilex=5, tiley=69 },
-- { tilex=9, tiley=5 },
-- { tilex=5, tiley=5 },
-- { tilex=69, tiley=6 },
-- { tilex=69, tiley=5 }
}
-- We'lldo one at a time
--69,6 69,5 is it finished?
-- HELPER FUNCTIONS ------------------------------
function IsOnThisMap( obj )
return obj.mapX == mapx and obj.mapY == mapy
end
function GetDistance( x1, y1, x2, y2 )
return math.sqrt( ( x2 - x1 )^2 + ( y2 - y1 )^2 )
end
-- DEBUG -----------------------------------------
function Debug( title, thing, x, y, level )
print( title .. ": " .. type(thing), x + (level*8), y)
if thing == nil then
return
end
for key, value in pairs( thing ) do
y = y + 8
if type( value ) == "table" then
Debug( key, value, x + (level*8), y, level+1 )
else
print( key .. "=" .. value, x + (level*8), y )
end
end
end
function Debug2()
print( "MAP: " .. mapx .. "," .. mapy, 2, 128 )
print( "PLAYER: " .. x .. "," .. y, 50, 128 )
end
-- WARP HANDLER ----------------------------------
warps = {}
warptimer = 0
function CreateWarp( tile1X, tile1Y, tile2X, tile2Y )
newWarp = {}
newWarp.tileX = tile1X
newWarp.tileY = tile1Y
newWarp.mapX = math.floor( newWarp.tileX / 30 ) * 30
newWarp.mapY = math.floor( newWarp.tileY / 16 ) * 16
newWarp.x = (newWarp.tileX - newWarp.mapX)*8
newWarp.y = (newWarp.tileY - newWarp.mapY)*8
newWarp.tileDestX = tile2X
newWarp.tileDestY = tile2Y
newWarp.mapDestX = math.floor( newWarp.tileDestX / 30 ) * 30
newWarp.mapDestY = math.floor( newWarp.tileDestY / 16 ) * 16
newWarp.xDest = (newWarp.tileDestX - newWarp.mapDestX)*8
newWarp.yDest = (newWarp.tileDestY - newWarp.mapDestY)*8
table.insert( warps, newWarp )
end
function HandleWarps()
if warptimer == 0 then
for id, wp in pairs( warps ) do
if IsOnThisMap( wp ) then
if GetDistance( x, y, wp.x, wp.y ) <= 8 then
mapx = wp.mapDestX; mapy = wp.mapDestY
x = wp.xDest; y = wp.yDest
warptimer = 100
end
end -- IsOnMap
end -- for
elseif warptimer > 0 then
warptimer = warptimer - 1
end -- warptimer
end -- function
-- ENEMY HANDLER ---------------------------------
enemies = {}
function CreateEnemy( mapX, mapY, tileX, tileY, health, imgTopLeft, imgTopRight, imgBottomLeft, imgBottomRight )
newEnemy = {}
newEnemy.mapX = mapX
newEnemy.mapY = mapY
newEnemy.tileX = tileX
newEnemy.tileY = tileY
newEnemy.x = (tileX - mapX) * 8
newEnemy.y = (tileY - mapY) * 8
newEnemy.health = health
newEnemy.imgTopLeft = imgTopLeft
newEnemy.imgTopRight = imgTopRight
newEnemy.imgBottomLeft = imgBottomLeft
newEnemy.imgBottomRight = imgBottomRight
table.insert( enemies, newEnemy )
end
function UpdateEnemies()
for id, en in pairs( enemies ) do
if IsOnThisMap( en ) then
-- Enemy behavior
end
end
end
function DrawEnemies()
for id, en in pairs( enemies ) do
if IsOnThisMap( en ) then
spr( en.imgTopLeft, en.x-4, en.y-4, 0 )
spr( en.imgTopRight, en.x+4, en.y-4, 0 )
spr( en.imgBottomLeft, en.x-4, en.y+4, 0 )
spr( en.imgBottomRight, en.x+4, en.y+4, 0 )
print( en.health, en.x, en.y - 8 )
end
end
end
-- SETUP -----------------------------------------
-- MAPX MAPY TILEX TILEY HEALTH SPR1 SPR2 SPR3 SPR4
CreateEnemy( 0, 0, 1, 1, 3, 13, 14, 29, 30 )
CreateEnemy( 30, 0, 34, 4, 3, 13, 14, 29, 30 )
-- TILE1X, TILE1Y, TILE2X, TILE2Y
CreateWarp( 57, 9, 62, 10 )
--warps = {
-- {
-- mapxA=0, mapyA=0, xA=15*8, yA=7*8,
-- mapxB=210, mapyB=119, xB=0, yB=0
-- },
--}
--warptimer=0
function TIC()
map(mapx,mapy)
spr(33,x,y,0)
spr(34,x+8,y,0)
spr(49,x,y+8,0)
spr(50,x+8,y+8,0)
spr(65,x,y+16,0)
spr(66,x+8,y+16,0)
spr(81,x,y+24,0)
spr(82,x+8,y+24,0)
spr(58,ex, ey,0)
spr(59,ex+8, ey,0)
spr(90,ex, ey+8,0)
spr(91,ex+8, ey+8,0)
spr(92,ex+16, ey+8,0)
spr(106,ex, ey+16,0)
spr(107,ex+8, ey+16,0)
spr(108,ex+16,ey+24,0)
spr(122,ex, ey+24,0)
spr(123,ex+8, ey+24,0)
spr(124,ex+16,ey+24,0)
ex = ex + ed
if ex > 240 or ex < -8 then
ed=-ed
end
if btn(0) and y >= 36 then
y=y-1
end
if btn(1) and y <= 43 then
y=y+1
end
if btn(2) then x=x-1 end
if btn(3) then x=x+1 end
print( x .. "," .. y )
mx,my,mb=mouse()
-- FIRST DOOR
if mapx==0 and mapy==0
and mx>=15*8 and mx<=16*8
and my>=6*8 and my<=8*8
then
if mb == true then
mapx=210
mapy=119
else
print("Enter door",mx,my+24,12)
end
end
--[[
for id, warp in pairs(warps) do
wmapx=math.floor(warp.tilex/30)
wmapy=math.floor(warp.tiley/16)
wx=warp.tilex-wmapx
wy=warp.tiley-wmapy
if mb==true and
mapx==wmapx and mapy==wmapy and
mx>=wx and mx <= wx+8 and
my>=wy and my <= wy*8 then
-- warp
mapx=warp.gotox
mapy=warp.gotoy
end
end
]]--
end
--
-- 001:00eede0000deed0000eedd0000ddee0000eedd0000ddee0000dedd0000edee00
-- 002:222c2222222c2222222c2222cccccccc2222222c2222222c2222222ccccccccc
-- 003:5555555565656565656565655656565665656565666666666666666666666666
-- 004:00000000c00000002c00000022c0000022cc0000ccccc00022c22c0022c222c0
-- 005:000000000000000c000000c200000c220000cc22000ccccc00c22c220c222c22
-- 006:ca9ac99999c999ac9a99acc9acaac9ac00000000000000000000000000000000
-- 007:4444444443443443333333333333333333333333333333333333333333333333
-- 008:0303030322222222434343434343434343434343434343432222222240404040
-- 012:f2f00000222220002f22f2c6022f22c6022222c600f22fc600ccccc600666666
-- 019:3333433344433344333343334443334433334333444333443333433344333344
-- 021:deeeddeddddeeeeeeeedddddddddddddeeeddeddddeeeeeeeeeddddeeddeeedd
-- 022:0000000000000003000000340000034400003333000343440033333303434344
-- 023:0000000030000000430000003330000033330000343430003333330034343430
-- 024:0440044044444444444444440440044004400440044004400440044004400440
-- 028:6656566666565656656656566666656666666566656656566556565666565666
-- 033:0000303000003333000044440000444400004f440000444400004f44000044ff
-- 034:303000003330000044400000444000004f400000444000004f400000f4400000
-- 037:0000ffff000ff00f00ffff0000fffff00fffffffff44444ff141114fff444441
-- 039:0000400000044000000440000000400000004000000440000004400000004000
-- 042:0000000000000000000000000000000000000000000000000000000000004444
-- 043:0000000000000000000000000000000000000000000000000000000044444440
-- 048:0000000000000000000000000000000000000000000000000000000400000044
-- 049:000044440000004400000044000bbbbb00cccccc00bbbbbb44cccccc44bbbbbb
-- 050:444000004000000040000000bbbb0000ccccc000bbbbb000ccccc444bbbbb444
-- 051:0000000000000000000000000000000000000000000000000000000040000000
-- 052:000000030000000f0000033f0000333300033303000000000000000000000000
-- 053:33333333333f3333f3ff333333333ccf3fccccf33ffffff33333333333003330
-- 055:ee6e56e556e5de5e65ed65dee66656eed65de6d565d6e56ed66e565deed56dd5
-- 058:000044440000444400044444000444f400044444000f44440004f44400044fff
-- 059:4444444444444444444444444444f44444444444444444444ff44444ff444444
-- 060:0000000000000000400000004000000040000000400000004000000040000000
-- 064:0000004400000044000000440000004400000044000000000000000000000000
-- 065:00cccccc00bbbbbb00cccccc00bbbbbb00cccccc00bbbbbb0004400000044000
-- 066:ccccc004bbbbb004ccccc004bbbbb004ccccc004bbbbb0004400000044000000
-- 067:4000000040000000400000004000000040000000000000000000000000000000
-- 068:000000000000000000000000000000ff0000ffff330fffff33ffffff33ffffff
-- 069:0000333000003330ffffffffffffffffffffffffffffffffffffffffffffffff
-- 070:00000000000000000000000000000000f0000000f0f00000fff00000ffff0000
-- 074:0004444400044444000000000000000000000000003333330033333304333333
-- 075:4444444444440000444440004444400044444000333333003333333033333330
-- 081:0044400000444000000440000ffff00ffffff00f000000000000000000000000
-- 082:444000004440000044000000fff00000ffff0000000000000000000000000000
-- 084:0000000f000000ff000000ff000000ff000000000000000f0f000fffff000fff
-- 085:ffffffffffffffffffffffffffffffffff000fffff0000fff0000ffff0000fff
-- 086:ffff0000ffff0000fffff000ffffff00f00fff00f00fff00000fff00000ff000
-- 089:0000004400000044000000440000004400000044000000400000004000000000
-- 090:4433333344333333403333334033333300333333000333330000333300000333
-- 091:3333333433333334333333303333333333333333333333333333333333333333
-- 092:4000000044400000444000004440000044400000304000003000000030000000
-- 096:dedd0000edee0000deed0000ddee0000eeddeddddddedeeddeeeeddeeedddedd
-- 098:e56e000056e600006d6e0000e6560000d56e6e66e656665e656e556de65eedd6
-- 100:f00fffff0fffffff0fffffff000fff0000000000000000000000000000000000
-- 101:f000fff00000fff00000fff0f0fffff0ff000000000000000000000000000000
-- 102:000f000000000000000000000000000000000000000000000000000000000000
-- 106:0000000400000004000000040000004400000044000000040000000400000004
-- 107:4400004444000044440000444400004444000444440004444400044444000444
-- 108:4000000040000000400000004000000040000000400000004000000040000000
-- 117:dddddddddccddaaddcaddaaddddddddddddddddddaaddaaddaaddaaddddddddd
-- 122:00ffffff0fffffff00ffffff0000000000000000000000000000000000000000
-- 123:fff0fffffffffffffff0ffff0000000000000000000000000000000000000000
-- 124:fff00000fff00000fff000000000000000000000000000000000000000000000
-- 128:000000000000000000000000000000000000000000ddeede0deedeeddeedeede
-- 129:00000000000000000000000000000000ddeededdeedeedeeddeedeedeedeedee
-- 130:0000000000000000000000000000000000000000ddeddd00eedeeed0ddeedeed
-- 131:cccccccdcc3cc3cd3333333dccaaaaadcaaaaaadaaaaaaadaaaaaaaddddddddd
-- 134:000000ee00000ece0000ede00000ede0000ede00000ee0000003000000030000
-- 136:0000000000000006000000660000006600000666000006660000066600066666
-- 137:6666666666633333666333336663333366633333666333336666333366666666
-- 138:6666666636666666333666663333666633333333333333333333333366666633
-- 139:6666666366666633666663336666633333333633333333333333333333333333
-- 140:3333666633363666333336663333336633333366333336663333336633333363
-- 141:6666666666666666666666666666666666666666666666636333333336333333
-- 142:0000000060060000066600000066000066666600366666603666666666666660
-- 147:3333333d3333333d3dd3333d3dd3333d3333333d3333333d3333333d3333333d
-- 152:0666666666666666666666666666666666636666666366666663666666663666
-- 153:6333366663333333666333336666663366666663666663336663333666333666
-- 154:6666666636666333333333333333336633336666333666666636666666636666
-- 155:6633333333333333366663336666633366666333666663336666633366666333
-- 156:3333333333333333333333333333333633333336333333663333336633333366
-- 157:3333336633366666366666606666666666666666666666336666633666663666
-- 158:6666600066606666666666666666666666666666666666666666666666666666
-- 159:0000000066666600666666606666666066666660666666606666666066666660
-- 162:000000000000000000000000000000006eed6edd556e566ed6566556655ed6e5
-- 164:0000043300000334000004440000044400000444000004440000044400000444
-- 165:4400000044000000330000004400000044000000440000004400000044000000
-- 168:6666366666666366666666330666666600006666000000660000000000000000
-- 169:6333666633366666366666666666666666666666666666666666666606666660
-- 170:6663366666663366666633336666666366666663666666630666666300666663
-- 171:6666633366666333666663333366333333363333333333333333333333333333
-- 172:3333336633333366333336663333366633333666333336663333333333333333
-- 173:6663366666636666666366666633666666366666663633333333333333333336
-- 174:6666666666666666666666666666666533336665332222653222225562222222
-- 175:6666666066666660656666605556060055566600655566005555660026666660
-- 180:0000033400000443000003340000044300000433000004440000033400000433
-- 181:3300000034000000330000003400000044000000330000004400000033000000
-- 185:0066666000006600000000000000000000000000000000000000000000000000
-- 186:0066666300666663000666660006666600006666000006660000006600000066
-- 187:3333333333333333333333336633333366666333666603336660033366600333
-- 188:3333333333333333333333333333366633336666333306663333066633330066
-- 189:3333336633336366366663666666636666666636666666636666666666666666
-- 190:6222222262222222622222226222222266222226336666666366666660006666
-- 191:6666666066666660666666006666660066666000666000006600000060000000
-- 202:0000000600000000000000000000000000000000000000000000000000000000
-- 203:6660033366000333000003330000033300000333000003330000033300000333
-- 204:3333006633330000333300003333000033330000333300003333000033330000
-- 205:6666666666666666666666660666666600066666000000660000000000000000
-- 206:6000000060000000660000006600000066000000600000000000000000000000
-- 211:0000000000000000000000000000000000000000000000000000030000000000
-- 219:0000033300000333000003330000333300003333000033330000333300003333
-- 220:3333000033300000333000003330000033300000333300003333300033333000
-- 234:0000000000000000000000000000000000000000000000000000000000000003
-- 235:0003333300033333003333330033333303333333333333333333333333333333
-- 236:3333300033333000333333003333330033333300333333003333330033333300
-- 249:0000000000000000000000000300000000300000000300000000300300000333
-- 250:0000000300000033000000330000333300333333033333333333333333333333
-- 251:3333333333333333333333333333333333333333333333333333333333333333
-- 252:3333330033333330333333303333333333333333333333333333333333333333
-- 253:0000000000000000000000000000000030000000333000003333333333333333
-- 254:0000000000000000000000000000000000000000000000003330000033333300
--
--
--
-- 000:00000000ffffffff00000000fff4ffff
-- 001:0123456789abcdeffedcba9876543210
-- 002:0123456789abcdef0123456789abcdef
--
--
-- 000:000000000000000000000000001dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b000000000
--
--
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
--
--
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
--